from scapy.all import *
from scapy.layers.inet import IP, TCP

# 目标服务器的 IP 地址和端口
target_ip = "目标服务器IP地址"
target_port = 80

# 伪造的源 IP 地址（请确保你有伪造 IP 的合法授权）
src_ip = "伪造的源IP地址"

# POST 请求的 URL 路径
url_path = "/"

# 要发送的 POST 请求体，例如表单数据
post_data = "param1=value1&param2=value2"

# 构建 HTTP POST 请求
http_request = (
    f"POST {url_path} HTTP/1.1\r\n"
    f"Host: www.example.com\r\n"  # 目标服务器的域名
    f"User-Agent: Scapy/PostRequest\r\n"
    f"Content-Type: application/x-www-form-urlencoded\r\n"
    f"Content-Length: {len(post_data)}\r\n"
    f"\r\n"
    f"{post_data}"
)

# 构建 IP 层
ip_layer = IP(src=src_ip, dst=target_ip)

# 构建 TCP 层
tcp_layer = TCP(sport=RandShort(), dport=target_port)

# 将 HTTP 请求作为 Raw 数据负载
raw_http_request = Raw(load=http_request)

# 组合数据包
packet = ip_layer / tcp_layer / raw_http_request

# 发送数据包（不输出详细信息）
send(packet, verbose=False)